Software applications that run on computing systems commonly provide some type of user client interface to present information to the user and receive user inputs. Most applications also typically require a user to provide login credentials via the user interface in order to authenticate the user prior to using the application. For example, the application may request login information from the user, such as a username and password. After the user logs in, the application directs the computing system to transfer this user data over a communication network to a server for authentication. In response to the authentication request, the server verifies that the login information provided by the user is valid, and responds with an indication that the user is authenticated and authorized to utilize the application. The application then allows the user to access the functionality provided by the application.
Most applications typically require server authentication each time they are launched by a user. For example, even if an application stores the user's credentials, the application requires a data connection over a network in order to connect to a server, transfer the credentials, and re-authenticate the user for the application. If the computing system does not have access to the authenticating server when the user attempts to open the application, the user is prevented from utilizing the application until a connection with the server is established and the user is authenticated.